package com.car.advertising.util;

import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;

import com.car.advertising.CarApplication;
import com.support.widget.util.LogUtil;

/**
 * SharedPreference工具类
 *
 * @author luoyi PreferenceUtil.java 2015年4月29日上午10:15:00
 */
public class PreferenceUtil {
    private static SharedPreferences mSharedPreferences;

    private static synchronized SharedPreferences getPreferneces() {
        if (mSharedPreferences == null) {
            Context context = CarApplication.getInstance();
            mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);

        }
        return mSharedPreferences;
    }

    public static void print() {
        LogUtil.d(getPreferneces().getAll());
    }

    /**
     * 保存String类型字段
     *
     * @param key
     * @param value
     */
    public static void putString(String key, String value) {
        getPreferneces().edit().putString(key, value).commit();
    }

    /**
     * 取得String类型字段
     *
     * @param key
     * @return
     */
    public static String getString(String key) {
        return getPreferneces().getString(key, "");
    }

    /**
     * 保存int类型字段
     *
     * @param key
     * @param value
     */
    public static void putInt(String key, int value) {
        getPreferneces().edit().putInt(key, value).commit();
    }

    /**
     * 取得int类型字段
     *
     * @param key
     * @return
     */
    public static int getInt(String key) {
        return getPreferneces().getInt(key, 0);
    }

    /**
     * 保存boolean类型字段
     *
     * @param key
     * @param value
     */
    public static void putBoolean(String key, Boolean value) {
        getPreferneces().edit().putBoolean(key, value).commit();
    }

    /**
     * 取得boolean类型字段
     *
     * @param key
     * @param defValue
     * @return
     */
    public static boolean getBoolean(String key, boolean defValue) {
        return getPreferneces().getBoolean(key, defValue);
    }

    /**
     * 保存long类型字段
     *
     * @param key
     * @param value
     */
    public static void putLong(String key, long value) {
        getPreferneces().edit().putLong(key, value).commit();
    }

    /**
     * 取得long类型字段
     *
     * @param key
     * @return
     */
    public static long getLong(String key) {
        return getPreferneces().getLong(key, 0);
    }

    /**
     * 删除全部
     */
    public static void clear() {
        getPreferneces().edit().clear().commit();
    }

    /**
     * 删除某个字段
     *
     * @param key
     */
    public static void removeString(String key) {
        getPreferneces().edit().remove(key).commit();
    }

}
